package com.mt.mtyx.product.api;

import com.mt.mtyx.entity.product.Category;
import com.mt.mtyx.entity.product.SkuInfo;
import com.mt.mtyx.product.service.CategoryService;
import com.mt.mtyx.product.service.SkuInfoService;
import jdk.nashorn.internal.runtime.logging.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author WMT
 * @Date 2023/7/21 17:51
 */
@RequestMapping("/api/product")
@RestController
public class ProductInnerController {

    @Autowired
    private CategoryService categoryService;

    @Autowired
    private SkuInfoService skuInfoService;

    /**
     * 根据分类id获取分类详情
     *
     * @param categoryById 分类id
     * @return 分类详情
     */
    @GetMapping("/inner/getCategoryById/{categoryById}")
    public Category getCategoryById(@PathVariable Long categoryById) {
        return categoryService.getDetails(categoryById);
    }


    /**
     * 根据skuid获取sku详情
     *
     * @param skuId skuid
     * @return sku详情
     */
    @GetMapping("/inner/getSkuInfoById/{skuId}")
    public SkuInfo getSkuInfoById(@PathVariable Long skuId) {
        return skuInfoService.getDetails(skuId);
    }

    /**
     * 根据skuId列表 批量查询 sku详情
     *
     * @param ids skuId列表
     * @return sku详情列表
     */
    @PostMapping("/inner/getSkuInfoList")
    public List<SkuInfo> getSkuInfoListByIds(@RequestBody List<Long> ids) {
        return skuInfoService.getSkuInfoListByIds(ids);
    }

    /**
     * 根据关键词查询商品信息
     *
     * @param keyword 关键词
     * @return 商品信息列表
     */
    @GetMapping("/inner/getSkuInfoListByKeyword/{keyword}")
    public List<SkuInfo> getSkuInfoListByKeyword(@PathVariable String keyword) {
        return skuInfoService.getSkuInfoListByKeyword(keyword);
    }

    /**
     * 根据分类id列表 批量查询分类数据
     *
     * @param ids 分类id列表
     * @return 分类数据列表
     */
    @PostMapping("/inner/getCategoryList")
    public List<Category> getCategoryListByIds(@RequestBody List<Long> ids) {
        return categoryService.getCategoryListByIds(ids);
    }

    /**
     * 获取所有分类列表
     *
     * @return
     */
    @GetMapping("/inner/getAllCategoryList")
    public List<Category> getAllCategoryList() {
        return categoryService.findAllList();
    }

    /**
     * 获取新人专享商品列表（库存排序前三条）
     *
     * @return
     */
    @GetMapping("/inner/getNewPersonSkuInfoList")
    public List<SkuInfo> getNewPersonSkuInfoList() {
        return skuInfoService.getNewPersonSkuInfoList();
    }
}
